package fiuba.service.impl;

import java.util.List;
import java.util.Date;

import fiuba.dao.ContenidoEstaticoDao;
import fiuba.dao.EstadisticaDao;
import fiuba.model.ContenidoEstatico;
import fiuba.model.Estadistica;
import fiuba.model.Estructura;
import fiuba.model.Noticia;
import fiuba.service.ContenidoEstaticoManager;

public class ContenidoEstaticoManagerImpl extends GenericManagerImpl<ContenidoEstatico, Long> implements ContenidoEstaticoManager {
		ContenidoEstaticoDao contenidoEstatico;
		EstadisticaDao estadisticaDao;

	    public ContenidoEstaticoManagerImpl(ContenidoEstaticoDao contenidoEstatico
	    		, EstadisticaDao estadisticaDao) {
	        super(contenidoEstatico);
	        this.contenidoEstatico = contenidoEstatico;
	        this.estadisticaDao = estadisticaDao;
	        
	    }
		public List<ContenidoEstatico> getAllByName() {
			return this.contenidoEstatico.getAllByName();
		}
		public List<ContenidoEstatico> getVigentes(){
			return contenidoEstatico.findVigentes();
		}
		public List<ContenidoEstatico> getNoVigentes(){
			return contenidoEstatico.findNoVigentes();
		}	    
		public boolean tieneAsociaciones(Long id) {
			return contenidoEstatico.tieneAsociaciones(id);
		}
	    public void updateStats(ContenidoEstatico contenido, boolean isNew) {
	    	Estadistica e = null;
	    	if (!isNew) try {
	    		e = this.estadisticaDao.obtenerDeEstatico(contenido.getId());
	    	} catch (Exception ex) {e = null;}
	    	// Si no hay estadistica, la creo
	    	if (e == null) {
	    		e = new Estadistica();
	    	}
	    	if (e.getFechaCreacion() == null) {
	    		e.setFechaCreacion(new Date());
	    	}
	    	if (!isNew) {
	    		e.registrarModificacion();
	    	}
	    	e.setEstatico(contenido);
	    	e = estadisticaDao.save(e);
	    }		
}
